home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Glitch Apple Disk Collection
/
2014.glitch.apple.collection.zip
/
indexed
/
AUDEX.DSK
/
JABBER EXAMPLE PROGRAM.bas
< prev
next >
Wrap
BASIC Source File
|
2014-09-09
|
2KB
|
41 lines
0 REM *********************
1 REM * *
2 REM * JABBER ROUTINE *
3 REM * EXAMPLE PROGRAM *
4 REM * *
5 REM *********************
6 REM NS=NUMBER OF SOUNDS; AS(X)=ADDRESS OF SOUND X
7 REM NT=NUMBER OF JABBER TABLES; PT(X)=ADDRESS OF JABBER TABLE X
10 HIMEM: 29183: REM FOR SOUNDSET AT NORMAL LOAD LOCATION
15 PRINT CHR$(4);"BLOAD AUDIO OPCODES"
16 PRINT CHR$(4);"BLOAD DEMO SOUNDSET"
17 PRINT CHR$(4);"BLOAD DEMO JABBERTABLE"
21 :
22 :
23 REM USE PROCEDURE FROM SQUALK DEMO TO FIND END OF SOUNDSET
24 REM LAST BYTE OF SOUNDSET WILL BE AS(NS+1)
25 DIM AS(30)
30 NS = 1:AS(NS) = 29184: REM NORMAL SOUNDSET START
35 AS(NS +1) = 1 +AS(NS) + PEEK(AS(NS)): IF PEEK(AS(NS +1)) < >0 THEN NS = NS +1: GOTO 35
45 REM UP TO HERE, SAME AS FOR SQUALK DEMO, TO FIND END OF SOUNDSET
46 :
47 :
48 REM NOW FIND JABBER TABLE ADDRESSES
50 DIM PT(30): REM ALLOW FOR UP TO 30 JABBER TABLES
54 NT = PEEK(AS(NS +1) +1): REM NUMBER OF JABBER TABLES IS NORMALLY IN FIRST BYTE FOLLOWING SOUNDSET
55 PT(1) = AS(NS +1) +2: REM FIRST JABBER TABLE NORMALLY STARTS WITH SECOND BYTE AFTER SOUNDSET
60 FOR I = 1 TO NT: REM (FOR ALL TABLES)
65 TABLE = PT(I)
70 TABLE = TABLE +3: IF PEEK(TABLE +1) < >0 THEN GOTO 70
75 PT(I +1) = TABLE +1: REM SET ADDRESS OF NEXT TABLE
80 NEXT I: REM GO ON TO NEXT TABLE
85 REM THE PRECEDING LINES FIND THE ADDRESSES OF JABBER TABLES FOLLOWING THE SOUNDSET
86 :
87 :
90 FOR I = 1 TO NT:AD = PT(I): GOSUB 10003: NEXT I: REM JABBER ALL TABLES
95 END
96 :
97 :
10000 REM ONLY AUDSUBS LINES 10003 AND 10008 ARE NEEDED FOR JABBER
10003 GOSUB 10008: POKE 254,PL: POKE 255,PH: CALL 37478: RETURN : REM CALL JABBER
10008 PH = INT(AD/256):PL = AD -256 *PH: RETURN : REM CONVERT AD (ADDRESS) TO PH (POKEHI) AND PL (POKELO)